package errors

import (
	"errors"
	"fmt"
)

type BizError struct {
	Code    string `json:"code"`
	Message string `json:"message"`
}

func (e *BizError) Error() string {
	return fmt.Sprintf("biz_error[code=%s]: %s", e.Code, e.Message)
}

// NewBizError 快捷函数
func NewBizError(code string, msg string) error {
	return &BizError{Code: code, Message: msg}
}

// IsBizError 是否是业务错误
func IsBizError(err error) bool {
	var bizErr *BizError
	return errors.As(err, &bizErr)
}
